package jobascjp;

class Mammal {
    String name = "furry ";
    String makeNoise() { return "generic noise"; }
}

class Zebra extends Mammal {
    String name = "stripes ";
    String makeNoise() { return "bray"; }
}

public class ZooKeeper {
    public static void main(String[] args) { new ZooKeeper().go(); }
    void go(){
        Mammal m = new Zebra();
        System.out.println( m.name + m.makeNoise() ); // furry bray
        // TODO nachlesen der Regelung, wieso hier furry statt dem von mir erwarteten stripes auftaucht!
        // Polymorphismus, also das Runterreichen der richtigen Methode ist wohl nur fuer Instanzmethoden mieglich nicht fuer Attribute!
    }
    
    /*
     * What is the result?
     * 
     * furry bray // korrekt
     * stripes bray
     * furry generic noise
     * stripes generic noise
     * Compilation fails.
     * An exception is thrown at runtime.
     */
}
